// 防抖函数
/**
 * 防抖函数 - 用于防止重复点击
 * @param {Function} func - 需要防抖的函数
 * @param {number} wait - 等待时间（毫秒），默认500ms
 * @returns {Function} - 防抖处理后的函数
 */
export function debounce(func, wait = 500) {
  let timeout = null;
  return function (...args) {
    // 保存函数调用时的this上下文
    const context = this;
    // 清除之前的定时器
    if (timeout !== null) {
      clearTimeout(timeout);
    }
    // 设置新的定时器
    timeout = setTimeout(() => {
      // 执行原函数，传递正确的上下文和参数
      func.apply(context, args);
      timeout = null;
    }, wait);
  };
}